Self-timed interface for strobe-based systems

ABSTRACT

A method is disclosed comprising detecting an edge-transition of a strobe signal using hysteresis, the strobe signal originating in a first clock domain. A count is controlled in a first direction in response to the detected edge-transition. The count is controlled in a second direction in response to an edge-transition of a clock signal, the clock signal originating in a second clock domain. Data is interfaced between the first and second clock domains in response to the count.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/080,613, filed Mar. 14, 2005, now U.S. Pat. No. 7,688,672 entitledSELF-TIMED INTERFACE FOR STROBE-BASED SYSTEMS, which is herebyincorporated by reference in its entirety.

TECHNICAL FIELD

The disclosure herein relates generally to strobe-based data receivercircuits, systems and methods. In particular, this disclosure relates tosystems and methods for generating a self-timed read-enable signal forstrobe-based data receiver circuits.

BACKGROUND

Strobe-based data signaling is common in many memory systems, such as“Double Data Rate Synchronous DRAM” (DDR-SDRAM) and its relatedvariants. In such systems, reception or sampling of data under controlof a strobe signal involves use of the strobe signal to generate sampleclock signals that control sampling instants of a receiver associatedwith a data line or pin of the memory component. Once the datatransmitted by the DRAM during a “read” operation (i.e., the read-data)is sampled by the receiver circuitry on the memory controller, that datamust be reliably transferred into the core of the memory controller, forcontinued processing. While the core-clock of the memory controller andthe clock of the memory channel are typically the same frequency, thearriving data-strobe signal is of arbitrary phase with respect to thecore-clock of the memory controller.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a self-timed strobe-based receiver circuitthat includes an interface control circuit for generating a self-timedread-enable signal, under an embodiment.

FIG. 2 is a flow diagram for transferring data between different clockdomains using an interface control circuit, under an embodiment.

FIG. 3 is a block diagram of an interface control circuit, under anembodiment.

FIG. 4 is a schematic of a hysteresis buffer element that includes aSchmitt trigger circuit, under an embodiment.

FIG. 5 is a block diagram of an interface control circuit that includesa hysteresis element with a reset control, under an embodiment.

FIG. 6 is a self-timed strobe-based receiver circuit that includes aninterface control circuit for generating read-FIFO clock signals fordata read operations, under an embodiment.

FIG. 7 is an example signal timing diagram that includes signals of theself-timed strobe-based receiver circuit, under an embodiment.

FIG. 8 is a self-timed strobe-based receiver circuit that includes aninterface control circuit for generating interface enable signals fordata sampling operations, under an embodiment.

In the drawings, the same reference numbers identify identical orsubstantially similar elements or acts. To easily identify thediscussion of any particular element or act, the most significant digitor digits in a reference number refer to the Figure number in which thatelement is first introduced (e.g., element 100 is first introduced anddiscussed with respect to FIG. 1).

DETAILED DESCRIPTION

In an embodiment, a “clock-domain crossing” circuit may be required toreliably bridge an interface between a memory controller core, and amemory interface circuit which operate in different clock domains. Oneapproach may utilize a “First-In, First-Out” (“FIFO”) buffer. Becausethe memory-interface circuit and the associated strobe and data signalsare bi-directional between the memory controller and the DRAM, itbecomes necessary to gate the FIFO buffer so that it is only activeduring “read” operations (i.e., when data is being transmitted from theDRAM and sampled by receiver circuits whose timing instants arecontrolled by the strobe signal). The signal which controls the FIFOoperation may be referred to as the “read-enable signal”—when it isactive, data from the input receiver circuitry will be transferred intothe buffer under control of the data-sampling signal. Once data isstored in the FIFO, it can be transferred out and into thememory-controller core using a clock synchronous with thememory-controller core logic circuitry.

Self-timed data-receiver systems and methods for strobe-based datainterfaces are provided below. These systems and methods, referred toherein as “self-timed interface circuits” or “self-timed interfaces”,receive a strobe signal (also referred to as “DQS”, “sample signal”, and“data strobe”) from a component operating under a first clock domain. Afirst signal path of the self-timed interface couples the strobe signalDQS to a receiver or input sampler through a strobe-delay element. Thereceiver samples data received on a pin or data line, where the signalof the data line corresponds to the strobe signal DQS and operates underthe same clock domain as the strobe signal DQS. A second signal path ofthe self-timed interface couples the strobe signal DQS to an interfacecontrol circuit through a hysteresis-buffer element. The interfacecontrol circuit, which receives (as input) the output of thehysteresis-buffer element (referred to as a buffered strobe signal), aread-active signal that originates under a second clock domain, and aclock signal that originates under a second clock domain, generates aread-enable signal. The read-enable signal gates the buffered strobesignal to generate a read-FIFO clock signal for use in controlling datatransfers into the FIFO buffer which interfaces the first and secondclock domains.

The interface control circuit of an embodiment includes a countercircuit that couples to receive the buffered strobe signal. The countercircuit also couples to receive the clock signal gated by a controlsignal (i.e., the read-active signal) that originates in the same clockdomain as the clock signal. Edge transitions of each of the bufferedstrobe signal and the gated clock signal control a count of the counter.The counter circuit generates the read-enable signal in response to thecount being at a pre-specified count value. As above, the read-enablesignal gates the buffered strobe signal to generate the read-FIFO clocksignal.

The gating of signals by the self-timed interfaces of an embodiment(gating the clock signal with a control signal, and gating the bufferedstrobe signal with the read-enable signal) each involve signals thatoriginate in the same clock domain. This gating of signals originatingin the same clock domain therefore eliminates the uncertainty andinaccuracy associated with gating a first clock signal with a controlsignal generated in a second clock domain.

The self-timed interface is for use in strobe-based systems that includestrobe-based memory systems for example. The strobe-based memory systemsmay include double data rate (DDR) systems like DDR SDRAM as well asDDR2 SDRAM and other DDR SDRAM variants, such as reduced latency DRAM(RLDRAM), RLDRAM2, Graphics DDR (GDDR) and GDDR2, GDDR3, to name a few,but are not limited to these memory systems.

In the following description, numerous specific details are introducedto provide a thorough understanding of, and enabling description for,embodiments of the self-timed interface. One skilled in the relevantart, however, will recognize that these embodiments can be practicedwithout one or more of the specific details, or with other components,systems, etc. In other instances, well-known structures or operationsare not shown, or are not described in detail, to avoid obscuringaspects of the disclosed embodiments. As an example, the self-timedinterface embodiments described herein are presented in the context oftransferring individual data bits DQ<X> (where DQ<X> represents any oneof a number of data lines DQ<1:N>, where X is any of data lines 1, 2 . .. N) using corresponding strobe signals DQS with the understanding thatthe disclosed concepts apply to all data transfers for all bits DQ<1>thru DQ<N>.

FIG. 1 is a block diagram of a self-timed strobe-based receiver circuit10 that includes an interface control circuit 100 for generating aread-FIFO clock signal, under an embodiment. The interface controlcircuit 100 is a component of and/or coupled to one or more systems ordevices (not shown) as appropriate to a system/device hosting theself-timed strobe-based receiver circuit 10. The self-timed strobe-basedreceiver circuit 10 transfers data between first 101 and second 102clock domains of the host system.

The self-timed strobe-based receiver circuit 10 includes one or morereceivers (or data-samplers) 30, a strobe-delay circuit 20, one or moreFIFO buffers 40, and the interface control circuit 100, but is notlimited to these components. Each of the receivers 30 couple to sampleone of the data signals DQ<1:N> of individual data pins or linesoriginating from one or more components (not shown) in the first clockdomain 101, but are not so limited. The receivers 30 sample data of thepins/lines under control of a delayed strobe signal DQS′. The self-timedstrobe-based receiver circuit 10 of an embodiment includes a delayelement 20 that couples to receive the input strobe signal DQS and inturn generates a delayed strobe signal DQS′, where an amount of thedelay is as appropriate to the relative timing between the data signalDQ and the corresponding strobe signal DQS (typically 90-degrees, orone-quarter of the memory-clock cycle).

The M-bit side FIFO buffer 40 couples to the M outputs of the receivers30 to transfer the sampled data from the receivers 30 to a component inthe second clock domain 102 via data lines 35. In typical strobe-basedmemory systems, M=2*N, but other embodiments are not limited to thisrelationship. Read data is loaded into the FIFO buffer 40 under controlof the read-FIFO clock signal, which is generated by the interfacecontrol circuit 100. Read data is transmitted to one or more components(not shown) operating in the second clock domain 102 under control ofclock signal CLK.

The interface control circuit 100 couples to receive the strobe signalDQS, the clock signal CLK which embodies the timing of the second clockdomain 102, and a read-active control signal (“CON”), where the controlsignal CON couples to the interface control circuit 100 from a componentoperating under the second clock domain 102. The interface controlcircuit 100 generates the read-FIFO clock signal using information ofthe strobe signal DQS, the clock signal CLK, and the control signal CON,as described below, and couples the read-FIFO clock signal to the FIFObuffer 40.

FIG. 2 is a flow diagram 200 for transferring data between differentclock domains using a self-timed strobe-based receiver circuit, under anembodiment. Components of the self-timed strobe-based receiver circuitdetect the active-state of the read-active signal CON, as well as anedge-transition of the clock signal CLK at block 202. This detectioncontrols a count in a first direction (e.g., the count increments)within the self-timed strobe-based receiver circuit, at block 204. Theself-time strobe-based receiver circuit then detects a strobe signalDQS, at block 206. The detection includes hysteresis-based detectionthat generates a buffered output signal in response to transitions ofthe strobe signal across at least one of a first voltage threshold and asecond threshold voltage, but is not so limited. The self-timedstrobe-based receiver circuit controls a count in a second direction(e.g., the count decrements) in response to the detected strobe signaledge-transition, at block 208. The self-timed strobe-based receivercircuit generates the read-FIFO clock signal in response to adetermination the count is at a pre-specified count value (e.g., thecount is non-zero), at block 210. The read-FIFO clock signal couples tothe read buffer for use in controlling transfers of sampled data intothe read buffer from one or more receivers.

FIG. 3 is a block diagram of an interface control circuit 300 thatgenerates read-FIFO clock signals, under an embodiment. The interfacecontrol circuit 300 includes a hysteresis element 302, a counter circuit304, a comparator circuit 306, a delay element 308, and multiple logiccircuits 310/320, as described below. The hysteresis element 302 couplesto receive the strobe signal DQS into the interface control circuit 300from the first clock domain 101. The hysteresis element 302 of anembodiment is a comparator or detector (e.g., a “Schmitt trigger”) thatuses hysteresis in order to better detect valid regions of the strobesignal DQS, thereby improving tolerance of the interface control circuit300 to noise during high-impedance (inactive) states of the strobesignal DQS. The use of hysteresis improves tolerance to noise bychanging the “trip-point” voltage thresholds at the input which wouldcause a signal transition at the output, where the signal which controlsthe “trip-point” change is typically the output signal itself.Consequently the hysteresis-based comparator 302 detects a valid regionof a strobe signal DQS and generates a buffered strobe signal inresponse to transitions of the strobe signal DQS that place the voltageof the strobe signal DQS reliably above or below a voltage range boundedby the first and second voltage thresholds.

As an example of a hysteresis element 302, FIG. 4 is a schematic of ahysteresis element 402 that includes a Schmitt trigger circuit 412,under an embodiment. In a strobe-based signaling system such asDDR-SDRAM, when the DQS signal is not active, it is in a high-impedancestate. During this state, the voltage seen by an input receiver at theDQS pin will be approximately one-half of the power-supply voltage(i.e., “VDD” in FIG. 4) of the receiver circuit. This combination ofhigh-impedance and half-VDD biasing would cause traditional input buffercircuits to become very sensitive to spurious noise signals.

To prevent noise events from causing unwanted state changes during theinactive state, the Schmitt trigger circuit 412 conditions the strobesignal DQS through the use of two input voltage thresholds, or “trippoints”. When the output of the Schmitt trigger is high (e.g., at VDD),for example, the input voltage threshold is adjusted to a low thresholdvalue. In order to produce an output transition from high-to-low, aninput signal's voltage would have to fall below this low thresholdvalue. Similarly, when the output of the Schmitt trigger is low (e.g.,at VSS), the input voltage threshold is adjusted to a second voltagethreshold which is relatively higher than the first threshold value. Inthis condition, in order to produce an output transition fromlow-to-high, an input signal's voltage would have to rise above thishigh threshold. Such a “state-dependant input threshold” schemegenerally provides immunity to unwanted state changes due to noise aslong as the peak-to-peak amplitude of the noise is less than thedifference between the threshold voltages.

The interface control circuit of an alternative embodiment includes ahysteresis element having a reset control. The interface control circuitcouples a read-enable signal to the hysteresis element reset control inorder to ensure the hysteresis element output is in a known state at thefirst instance of an active DQS signal. FIG. 5 is a block diagram of ainterface control circuit 500 that includes a hysteresis element 502with a reset (“RESET”) control, under an embodiment. The hysteresiselement 502 includes an active-low reset that resets the hysteresiselement output in response to an asserted read-enable signal, but theembodiment is not limited to an active-low reset or to resetting inresponse to an active read-enable signal.

Returning to FIG. 3, the interface control circuit 300 couples thecounter circuit 304 to receive the buffered strobe signal from thehysteresis element 302. The counter circuit 304 also couples to receivea clock signal CLK and a control signal CON through a logic circuit 310.Both the clock signal CLK and the control signal CON originate in thesecond clock domain 102. The first logic circuit 310 includes an ANDgate, but alternative embodiments may use any combination of logiccircuits to generate AND gate functionality. The clock signal CLKcouples to a first input of the AND gate 310 and the control signal CONcouples to a second input of the AND gate 310. Via this embodiment, theAND gate 310 outputs a buffered version of clock signal CLK whenever thecontrol signal CON is in an active-high state.

During initialization of the interface control circuit 300 and/or asystem hosting the interface control circuit 300, the counter circuit304 is initialized at a pre-specified count value (referred to as the“initial count value”), possibly via a global reset signal (not shown).In one embodiment the counter circuit 304 uses an initial count value ofzero (0), but is not so limited. The initial count value may be storedin a register or other memory area (not shown) that is included inand/or coupled to the counter circuit 304. During subsequent operationsof the interface control circuit 300, edge transitions of each of thebuffered strobe signal and the gated clock signal affect the count valueof the counter circuit 304. An edge transition of the buffered strobesignal generally causes the counter value to adjust in one direction(first direction) while an edge transition of the gated clock signalgenerally causes the counter value to adjust in an opposite direction(second direction). Therefore, as an example, an edge transition of thebuffered strobe signal may decrement the counter value of an embodimentwhile an edge transition of the gated clock signal increments thecounter value. The edge transitions may be rising and/or falling edgetransitions as appropriate to the host system.

The counter circuit 304 of an embodiment includes and/or couples to acount comparator circuit 306, also referred to as a count comparator306. The count comparator circuit 306 receives information of the countvalue, and continually compares the count value with the initial countvalue; alternative embodiments may compare the count value with othervalues as appropriate to the system configuration. The count comparatorcircuit 306 generates the read-enable signal as an output signal inresponse to comparison results that satisfy a pre-defined condition orrelation between the count value and the initial count value. As anexample, for a system in which the initial count value is zero(count=0), the count comparator circuit 306 of an embodiment generatesthe read-enable signal in response to comparison results in which thecount value is a non-zero value (count≠0). However, alternativeembodiments may use other pre-defined conditions.

The interface control circuit 300 couples the read-enable signal outputof the count comparator circuit 306 to a second logic circuit 320. Thesecond logic circuit 320 also couples to receive the buffered strobesignal. The second logic circuit 320 of an embodiment includes an ANDgate 320, but alternative embodiments may use any combination of logiccircuits to generate AND gate functionality. The read-enable signalcouples to a first input of the AND gate 320 and the buffered strobesignal couples to a second input of the AND gate 320. Via thisembodiment, the AND gate 320 outputs a buffered version of the bufferedstrobe signal whenever the read-enable signal is in an active-highstate.

The interface control circuit 300 of an embodiment includes a delayelement 308 that couples to receive the gated, buffered strobe signalfrom the output of the second logic circuit 320. The delay element 308applies a delay to the gated strobe signal. The delay applied by thedelay element 308, which is set or controlled as described below, isapproximately in a range of one-quarter clock cycle (90 degrees) tothree-quarters of a clock cycle (270 degrees) of the clock signal CLK asappropriate to the host system signal timing, but is not so limited. Thedelay element 308 outputs a delayed version of the gated strobe signalas the read-FIFO clock signal. The read-FIFO clock signal couples to oneor more components of the host system for use in data transferoperations between different timing domains.

Use of the read-FIFO clock signal in data transfer operations includesuse of the read-FIFO clock signal to control data transfers into theFIFO buffer during read operations of a strobe-based memory system. Forexample, FIG. 6 is a self-timed strobe-based receiver circuit 600 thatincludes an interface control circuit 6300 for generating read-FIFOclock signals for use in data read operations, under an embodiment. Theself-timed strobe-based receiver circuit 600 is a component of astrobe-based memory system for example. The strobe-based memory systemsmay include double data rate systems like DDR SDRAM as well as othervariants, but are not limited to these memory systems.

The interface control circuit 6300 is a component of and/or coupled toone or more systems or devices (not shown) as appropriate to theself-timed strobe-based receiver circuit 600. In this example, thereceiver circuit 600 includes one or more receivers 630, one or moreread FIFOs 640, and the interface control circuit 6300. Each of thereceivers 630 couple to sample data signals DQ<1:N> of individual datapins or lines originating from one or more components (not shown) of thememory system in the first clock domain 101, but are not so limited. Thedata signals DQ<1:N> may be transmitted from a memory component in aread operation, for example.

Each receiver 630 operates as an input sampler and receives as asample-clock signal a delayed strobe signal DQS′ from a strobe delayelement 620. The delayed strobe signal DQS′ is generated by the strobedelay element 620, and each strobe delay element 620 outputs a signalDQS′ to the receivers used in sampling/receiving data signals DQ<1:N>.While a delayed strobe signal DQS′ couples to a receiver of one data bitof an N-bit wide data byte, the self-timed strobe-based receiver circuitof various alternative embodiments may couple the delayed strobe signalDQS′ to any number and/or combination of receivers, for example.

The amount of offset or delay of each strobe delay element 620 is asappropriate to the signaling protocol as well as the relative signalpropagation delays of the data signal DQ<X> and the corresponding strobesignal DQS. The delay value may be calibrated or adjusted, for example,to optimally edge-align the data signal DQ<X> and corresponding strobesignal DQS, where the optimal edge-alignment can be with respect to therising edge and/or falling edge of the data DQ<X> and strobe DQSsignals, but is not so limited. The delay of a typical embodiment isapproximately one-quarter cycle (i.e., approximately 90 degrees) of theclock signal CLK, but is not so limited. The receiver 630 outputs thesampled/received data on a number “M” of data lines 635.

The read FIFO 640 couples to one or more of the receivers 630 via thedata lines 635. The read FIFO 640 stores the sampled data from thereceivers 630, where this storage or ‘writing” is under control of aclock signal originating from the interface control circuit 6300. TheFIFOs contents are transmitted or “read” to other components (not shown)under control of a clock signal CLK originating from the second clockdomain 102. While the read FIFO 640 of this embodiment is a FIFO-typebuffer, alternative embodiments can use any type of buffer or device fortransferring data between two clock domains.

As described above with reference to FIGS. 1-5, the interface controlcircuit 6300 generates the read-FIFO clock signal. The interface controlcircuit 6300 includes a counter circuit 6304 that couples to ahysteresis element 6302 and multiple logic circuits 6310/6320. Thehysteresis element 6302, as described above in reference to FIG. 4,couples to receive the strobe signal DQS from the first clock domaininto the interface control circuit 6300. The interface control circuit6300 operates as described above in reference to the interface controlcircuit 300 of FIG. 3.

As an example of interface control circuit 6300 operation, FIG. 7 is anexample signal timing diagram 700 that includes signals of theself-timed strobe-based receiver circuit 600, under an embodiment. Withreference to FIG. 6, the signals include the clock signal CLK,read-active control signal CON, read-enable signal REN, strobe signalDQS, gated strobe signal, and read-FIFO clock signal. The count value isalso shown. The relative timing 700 of these signals is provided forpurposes of this example and is not to limit relative signal timing ofthe receiver circuit 600.

This example assumes the interface control circuit 6300 includes aninitial count value of zero (0) prior to data read operations. Thecounter circuit 6304 increments the count to a value of one (1) inresponse to a first rising edge 702 of the clock signal CLK that occurswhile the control signal CON is asserted 712, and the count comparatorcircuit 6306 asserts the read-enable signal REN in response to thenon-zero count value. The counter circuit 6304 increments the count to avalue of two (2) in response to a second rising edge 704 of the clocksignal CLK while the count comparator circuit 6306 continues to assertthe read-enable signal REN in response to the non-zero count value.

The hysteresis element 6302, as described above, is a comparator ordetector that improves tolerance to noise of the strobe signal DQS (in ahigh-impedance or inactive state 720) during high-speed operationsthrough the use of first 732 and second 734 voltage thresholds. Voltagelevels of the strobe signal DQS therefore trigger detection of a validregion 724 of the strobe signal when falling below both the first 732and second 734 voltage thresholds. Consequently, the falling-edgetransition that corresponds to the valid region 724 of strobe signal DQStriggers an output signal (buffered strobe signal) from the hysteresiselement 6302.

The interface control circuit 6300 couples the buffered strobe signal tothe second logic circuit 6320 along with the asserted read-enable signalREN from the counter circuit 6304. As the read-enable signal REN isasserted, the second logic circuit 6320 outputs the buffered strobesignal as the gated strobe signal. The receiver circuit 600 couples thegated strobe signal to the read FIFO 640 thru an interface delay element6308 as described above. In response to the output of the interfacedelay element 6308, the read FIFO 640 stores the sampled data from thereceivers 630.

The counter circuit 6304 decrements the count to a value of one (1)(from the current value of two (2)) in response to a first falling edge726 of the buffered strobe signal DQS, and the count comparator circuit6306 continues to assert the read-enable signal REN in response to thenon-zero count value. The counter circuit 6304 further decrements thecount to a value of zero (0) in response to a second falling edge 728 ofthe buffered strobe signal DQS, and the count comparator circuit 6306de-asserts the read-enable signal REN in response to this zero (0) countvalue. The second logic circuit 6320 ceases output of the gated strobesignal upon de-assertion of the read-enable signal REN and the read FIFO640 ceases storing the sampled data from the receivers 630.

The self-timed strobe-based receiver circuit of an alternativeembodiment may use the read-enable signal of an embodiment to gate thedelayed strobe signal DQS′ coupling to the receivers. FIG. 8 is areceiver circuit 800 that includes an interface control circuit 810 forgenerating read-FIFO clock signals for use in data sampling operations,under an embodiment. The receiver circuit 800 couples to the read-activecontrol signal CON and clock CLK signals of the second domain 102, andthe strobe signal DQS and data signals DQ<1:N> of the first domain 101,as described above. The interface control circuit 810 generallyfunctions as described above with reference to FIGS. 1-7. However,instead of using the read-FIFO clock signal to control receipt of datainto the read FIFO 840, the receiver circuit 800 couples the delayedstrobe signal DQS′ to a logic circuit 850 along with the read-FIFO clocksignal from the interface control circuit 810. Thus, the receivers 830sample or receive data of the data signals DQ<1:N> in response to thedelayed strobe signal DQS′ as gated by the read-FIFO clock signal.

The delay elements described above may include any number of circuitsthat generate/control delay elements and/or apply delays or offsets to areceived signal in order to produce a delayed signal, as describedabove. As one example the delay circuit includes a number of delayelements that couple to receive a clock signal (e.g., clock signal CLK)and are slaved to a delay-locked loop (“DLL”). Components of the delaycircuit select one of the delayed signals for use in generating anappropriate delay. The selection/adjustment of an amount of delay to beapplied to a received signal is performed in response to information ofsignal parameters of the host system and/or the self-timed interface.Examples of the signal parameters include one-way signal propagationdelays, round-trip propagation delays, the intrinsic cycle-based delaysof the system, the signal propagation time between components of thehost system, as well as intrinsic delays of devices of the varioussystem components and circuits, to name a few.

The delay elements of an embodiment also control the respective delaysor offsets within a pre-specified range in response to variations inoperating and/or environmental parameters of the host system and/orself-timed interface circuit. The operating or process parametersinclude, for example, the speed of operation, but can include numerousother parameters as appropriate. The environmental parameters include,for example temperature and/or power supply voltage, but can includenumerous other parameters as appropriate.

The components of the self-timed interfaces described above include anycollection of computing components and devices operating together. Thecomponents of the self-timed interfaces can also be components orsubsystems within a larger computer system or network. Components of theself-timed interfaces can also be coupled among any number of components(not shown), for example other buses, controllers, memory devices, anddata input/output (I/O) devices, in any number of combinations. Many ofthese system components may be soldered to a common printed circuitboard (for example, a graphics card or game console device), or may beintegrated in a system that includes several printed circuit boards thatare coupled together in a system, for example, using connector andsocket interfaces such as those employed by personal computermotherboards and dual inline memory modules (“DIMM”). In other examples,complete systems may be integrated in a single package housing using asystem in package (“SIP”) type of approach. Integrated circuit devicesmay be stacked on top of one another and utilize wire bond connectionsto effectuate communication between chips or may be integrated on asingle planar substrate within the package housing.

Further, functions of the self-timed interfaces can be distributed amongany number/combination of other processor-based components. Theself-timed interfaces described above include, for example, variousdynamic random access memory (DRAM) systems. As examples, the DRAMmemory systems can include double data rate (“DDR”) systems like DDRSDRAM as well as DDR2 SDRAM and other DDR SDRAM variants, such asGraphics DDR (“GDDR”) and further generations of these memorytechnologies, i.e., GDDR2, and GDDR3, but is not limited to these memorysystems.

Aspects of the self-timed interfaces described herein may be implementedas functionality programmed into any of a variety of circuitry,including programmable logic devices (PLDs), such as field programmablegate arrays (FPGAs), programmable array logic (PAL) devices,electrically programmable logic and memory devices and standardcell-based devices, as well as application specific integrated circuits(ASICs). Some other possibilities for implementing aspects of theself-timed interfaces include: microcontrollers with memory (such aselectronically erasable programmable read only memory (EEPROM)),embedded microprocessors, firmware, software, etc. Furthermore, aspectsof the self-timed interfaces may be embodied in microprocessors havingsoftware-based circuit emulation, discrete logic (sequential andcombinatorial), custom devices, fuzzy (neural) logic, quantum devices,and hybrids of any of the above device types. Of course the underlyingdevice technologies may be provided in a variety of component types,e.g., metal-oxide semiconductor field-effect transistor (MOSFET)technologies like complementary metal-oxide semiconductor (CMOS),bipolar technologies like emitter-coupled logic (ECL), polymertechnologies (e.g., silicon-conjugated polymer and metal-conjugatedpolymer-metal structures), mixed analog and digital, etc.

It should be noted that the various circuits disclosed herein may bedescribed using computer aided design tools and expressed (orrepresented), as data and/or instructions embodied in variouscomputer-readable media, in terms of their behavioral, registertransfer, logic component, transistor, layout geometries, and/or othercharacteristics. Formats of files and other objects in which suchcircuit expressions may be implemented include, but are not limited to,formats supporting behavioral languages such as C, Verilog, and HLDL,formats supporting register level description languages like RTL, andformats supporting geometry description languages such as GDSII, GDSIII,GDSIV, CIF, MEBES and any other suitable formats and languages.Computer-readable media in which such formatted data and/or instructionsmay be embodied include, but are not limited to, non-volatile storagemedia in various forms (e.g., optical, magnetic or semiconductor storagemedia) and carrier waves that may be used to transfer such formatteddata and/or instructions through wireless, optical, or wired signalingmedia or any combination thereof. Examples of transfers of suchformatted data and/or instructions by carrier waves include, but are notlimited to, transfers (uploads, downloads, e-mail, etc.) over theInternet and/or other computer networks via one or more data transferprotocols (e.g., HTTP, FTP, SMTP, etc.).

When received within a computer system via one or more computer-readablemedia, such data and/or instruction-based expressions of the abovedescribed circuits may be processed by a processing entity (e.g., one ormore processors) within the computer system in conjunction withexecution of one or more other computer programs including, withoutlimitation, netlist generation programs, place and route programs andthe like, to generate a representation or image of a physicalmanifestation of such circuits. Such representation or image maythereafter be used in device fabrication, for example, by enablinggeneration of one or more masks that are used to form various componentsof the circuits in a device fabrication process.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense as opposed to anexclusive or exhaustive sense; that is to say, in a sense of “including,but not limited to.” Words using the singular or plural number alsoinclude the plural or singular number respectively. Additionally, thewords “herein,” “hereunder,” “above,” “below,” and words of similarimport refer to this application as a whole and not to any particularportions of this application. When the word “or” is used in reference toa list of two or more items, that word covers all of the followinginterpretations of the word: any of the items in the list, all of theitems in the list and any combination of the items in the list.

The above description of illustrated embodiments of the self-timedinterfaces is not intended to be exhaustive or to limit the self-timedinterfaces to the precise form disclosed. While specific embodiments of,and examples for, the self-timed interfaces are described herein forillustrative purposes, various equivalent modifications are possiblewithin the scope of the self-timed interfaces, as those skilled in therelevant art will recognize. The teachings of the self-timed interfacesprovided herein can be applied to other processing systems and methods,not only for the systems and methods described above.

The elements and acts of the various embodiments described above can becombined to provide further embodiments. These and other changes can bemade to the self-timed interfaces and methods in light of the abovedetailed description.

In general, in the following claims, the terms used should not beconstrued to limit the self-timed interfaces and methods to the specificembodiments disclosed in the specification and the claims, but should beconstrued to include all processing systems that operate under theclaims. Accordingly, the self-timed interfaces are not limited by thedisclosure, but instead the scope of the self-timed interfaces is to bedetermined entirely by the claims.

While certain aspects of the self-timed interfaces are presented belowin certain claim forms, the inventor contemplates the various aspects ofthe self-timed interfaces in any number of claim forms. For example,while only one aspect of the self-timed interfaces is recited asembodied in machine-readable media, other aspects may likewise beembodied in machine-readable media. Accordingly, the inventor reservesthe right to add additional claims after filing the application topursue such additional claim forms for other aspects of the self-timedinterfaces.

1. An apparatus to transfer a signal from a first timing domain to asecond timing domain, the apparatus comprising: a sampler to sample thesignal responsive to a first timing reference associated with the firsttiming domain; a buffer circuit to transfer samples from the sampler tothe second timing domain responsive to a second timing referenceassociated with the second timing domain; and logic to filtertransitions of the first timing reference and responsively generate athird timing reference; where the transfer of samples from the samplerby the buffer circuit is gated by the third timing reference.
 2. Theapparatus of claim 1, where the third timing reference represents afunction of the first timing reference and an enable signal.
 3. Theapparatus of claim 1, where the logic produces transitions in the thirdtiming reference responsive to transitions in the first timing referencerepresenting greater than a threshold amount of signal change and doesnot produce transitions in the third timing reference for transitions inthe first timing reference less than the threshold amount.
 4. Theapparatus of claim 3, where the logic includes a Schmitt trigger, thethird timing reference dependent upon an output of the Schmitt trigger.5. The apparatus of claim 1, where the logic includes a counter circuitthat is incremented responsive to one of the first timing reference andthe second timing reference and decremented responsive to the other ofthe first timing reference and the second timing reference, the thirdtiming reference generated in dependence upon an output of the countercircuit.
 6. The apparatus of claim 5, where the buffer circuit is loadedresponsive to the third timing reference and unloaded responsive to thesecond timing reference.
 7. The apparatus of claim 5, further comprisinga gate that receives a control signal and inhibits the counterresponsive to a state of the control signal.
 8. The circuit of claim 1,where the first timing reference is a strobe signal.
 9. The apparatus ofclaim 1, where the logic filters transitions of the first timingreference to generate the third timing reference responsive to an inputassociated with the second timing domain.
 10. The apparatus of claim 9,where the input associated with the second timing domain is the secondtiming reference.
 11. The apparatus of claim 9, where the inputassociated with the second timing domain is a control signal.
 12. Theapparatus of claim 9, where the logic includes a hysteresis element, acounter and an AND gate, the hysteresis element generating a hysteresissignal responsive to filtered transitions in the first timing reference,the counter incremented by one of the first and second timing referencesand decremented by the other of the first and second timing referencesand producing a counter output representing a predetermined state of thecounter, and the AND gate producing the third timing reference as afunction of the counter output and the hysteresis signal.
 13. Theapparatus of claim 1, further comprising a delay element to delay thefirst timing reference and produce a delayed output, the samplersampling the signal responsive to the delayed output.
 14. The apparatusof claim 1, further comprising a delay element to delay the third timingreference and produce a delayed output, the transfer of samples gatedresponsive to the delayed output.
 15. The apparatus of claim 1, embodiedin a controller for use in a memory system, where the signal representsread data.
 16. An apparatus to transfer data from a first timing domainto a second timing domain, the method comprising: means for sampling asignal in response to a first timing reference, the first timingreference associated with the first timing domain; means for outputtingsamples from the means for sampling to the second timing domainaccording to timing of a second timing reference; and means for gatingthe transfer of samples from the means for sampling to the second timingdomain responsive to filtered transitions of the first timing reference.17. A method of transferring data from a first timing domain to a secondtiming domain, the method comprising: sampling a signal to generatesamples in response to a first timing reference, the first timingreference associated with the first timing domain; buffering the samplesresponsive to a gating signal, the gating signal based on filteredtransitions of the first timing reference; and transferring bufferedsamples into the second timing domain in response to a second timingreference associated with the second timing domain.
 18. The method ofclaim 17, further comprising generating the gating signal to havetransitions corresponding to transitions in the first timing referencegreater than a threshold amount of signal change and to not havetransitions corresponding to transitions in the first timing referenceless than the threshold amount of signal change.
 19. A method ofreceiving read data, the method comprising: sampling a signalrepresenting the read data to generate sampled data in response to afirst timing reference, the first timing reference associated with afirst timing domain; buffering the sampled data upon occurrence of acondition; and outputting buffered data in response to a second timingreference; where the occurrence of the condition is responsive tofiltered transitions of the first timing reference.
 20. The method ofclaim 19, where occurrence of the condition is further responsive to anenable signal.
 21. The method of claim 20, further comprising generatingthe enable signal as a logical function of at least one of (a) a controlsignal or (b) transitions of the second timing reference.
 22. The methodof claim 19, where the first timing reference is a strobe signal. 23.The method of claim 19, where the occurrence of the condition is furtherresponsive to transitions in the first timing reference greater than athreshold amount of signal change and to not have transitionscorresponding to transitions in the first timing reference less than thethreshold amount of signal change.